During the process of writing data into memory, the data is often encoded with extra bits to form a codeword. In the presence of noise, some of the bits representing the codeword may change, corrupting the original codeword with errors. When the codeword is read from the memory, a decoder may be used to identify and correct the errors using error correction coding (ECC). For example, Bose-Chaudhuri-Hocquenghem (BCH), Low Density Parity Check (LDPC), Reed Solomon and Turbo Coding Schemes are commonly used in applications where bit errors tend to be uncorrelated.
Hardware and software implementations of ECC algorithms are usually defined to be able to correct a given amount of errors over a given length of data. If a storage media returns data with more errors than an ECC engine is designed to be able to correct, the decoded data will not match the originally stored data. Thus, improving the error correction capabilities of the ECC engine of a memory device may improve the reliability of the memory device.